home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / misc / volume8 / cz / part08 < prev    next >
Encoding:
Text File  |  1989-09-30  |  46.5 KB  |  1,500 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v08i072: cz text to PostScript system, part 08 of 14
  3. from: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  4. Reply-To: howard@dahlbeck.ericsson.se (Howard Gayle)
  5.  
  6. Posting-number: Volume 8, Issue 72
  7. Submitted-by: howard@dahlbeck.ericsson.se (Howard Gayle)
  8. Archive-name: cz/part08
  9.  
  10. #! /bin/sh
  11. # This is a shell archive.  Remove anything before this line, then feed it
  12. # into a shell via "sh file" or similar.  To overwrite existing files,
  13. # type "sh file -c".
  14. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  15. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  16. # If this archive is complete, you will see the following message at the end:
  17. #        "End of archive 8 (of 14)."
  18. # Contents:  grid.1 grid.c hook-add.el laser-dr.ps letterfreq.1
  19. #   letterfreq.c prolog-beg.p4 ps-abbrev.m4 se.rc seus.code state0.m4
  20. # Wrapped by howard@dahlbeck on Mon Sep 25 07:15:21 1989
  21. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  22. if test -f 'grid.1' -a "${1}" != "-c" ; then 
  23.   echo shar: Will not clobber existing file \"'grid.1'\"
  24. else
  25. echo shar: Extracting \"'grid.1'\" \(1789 characters\)
  26. sed "s/^X//" >'grid.1' <<'END_OF_FILE'
  27. X.\" $Header: grid.1,v 1.3 89/08/29 10:53:25 howard Exp $
  28. X.TH GRID 1 "$Revision: 1.3 $"
  29. X.SH NAME
  30. Xgrid \- generate test pattern
  31. X.SH SYNOPSIS
  32. X.B grid
  33. X.I rows
  34. X.I columns
  35. X.SH COPYRIGHT
  36. XCopyright \(co 1989 Howard Lee Gayle
  37. X.SH DESCRIPTION
  38. X.I Grid
  39. Xwrites on the standard output a test pattern with the given
  40. Xnumber of rows (lines) and columns.
  41. XThe rows are numbered starting with 1.
  42. XThe columns are numbered at every multiple of 10.
  43. XThe leftmost column is column 1.
  44. X.SH EXAMPLES
  45. XTo find out how many columns your laser can handle in 10 point
  46. Xfixed-width font:
  47. X.nf
  48. X   % grid 10 100 > t1
  49. X   % cz \-b 10.0bp \-f t1
  50. X.fi
  51. X.PP
  52. XTo get exactly 2048 bytes into a file for tape testing:
  53. X.nf
  54. X   % grid 1 2047 > t2
  55. X.fi
  56. X(The newline makes it 2048.)
  57. X.PP
  58. XSend 100 000 bytes to the terminal, and count how long it
  59. Xtakes, in order to compute the true line speed:
  60. X.nf
  61. X   % time grid 100 999
  62. X.fi
  63. X.PP
  64. X.I Grid
  65. Xcan also be used to produce a guide to column positions for
  66. Xtext with fixed column positions.
  67. X.SH LICENSE
  68. XThis program is free software; you can redistribute it and/or modify
  69. Xit under the terms of the GNU General Public License version 1,
  70. Xas published by the Free Software Foundation.
  71. X.PP
  72. XThis program is distributed in the hope that it will be useful,
  73. Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
  74. XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  75. XGNU General Public License for more details.
  76. X.PP
  77. XYou should have received a copy of the GNU General Public License
  78. Xalong with this program; if not, write to the Free Software
  79. XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  80. X.SH AUTHOR
  81. XHoward Gayle,
  82. XTN/ETX/T/BG,
  83. XEricsson Telecom AB,
  84. XS-126 25 Stockholm,
  85. XSweden,
  86. Xhoward@ericsson.se,
  87. Xuunet!ericsson.se!howard,
  88. XPhone: +46 8 719 5565,
  89. XFAX: +46 8 719 9598,
  90. XTelex: 14910 ERIC S
  91. END_OF_FILE
  92. if test 1789 -ne `wc -c <'grid.1'`; then
  93.     echo shar: \"'grid.1'\" unpacked with wrong size!
  94. fi
  95. # end of 'grid.1'
  96. fi
  97. if test -f 'grid.c' -a "${1}" != "-c" ; then 
  98.   echo shar: Will not clobber existing file \"'grid.c'\"
  99. else
  100. echo shar: Extracting \"'grid.c'\" \(3397 characters\)
  101. sed "s/^X//" >'grid.c' <<'END_OF_FILE'
  102. X/*
  103. X * grid - print grid on standard output
  104. X */
  105. X
  106. X#ifndef lint
  107. Xstatic char _cpyrgt[] = "Copyright 1989 Howard Lee Gayle";
  108. X#endif lint
  109. X
  110. X/*
  111. X * This program is free software; you can redistribute it and/or modify
  112. X * it under the terms of the GNU General Public License version 1,
  113. X * as published by the Free Software Foundation.
  114. X *
  115. X * This program is distributed in the hope that it will be useful,
  116. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  117. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  118. X * GNU General Public License for more details.
  119. X *
  120. X * You should have received a copy of the GNU General Public License
  121. X * along with this program; if not, write to the Free Software
  122. X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  123. X */
  124. X
  125. X#include <stdio.h>
  126. X#include <howard/port.h>
  127. X#include <howard/version.h>
  128. X#include <howard/usage.h>
  129. X
  130. XMAINVER ("@(#)$Header: grid.c,v 1.4 89/08/21 11:03:01 howard Exp $");
  131. XUSAGE ("number-of-rows number-of-columns");
  132. X
  133. X#include <howard/malf.h>
  134. X#include <howard/registers.i>
  135. X
  136. X#define MIN_ROW    1        /* minimum row number            */
  137. X#define MAX_ROW    9999        /* maximum row number            */
  138. X#define MIN_COL    11        /* minimum column number        */
  139. X#define    MAX_COL    9999        /* maximum column number        */
  140. X
  141. X/* decpad - convert integer to string, pad with minus            */
  142. X
  143. XPRIVATE void decpad (s, i)
  144. XR1 char    *s; /* output string            */
  145. XR2 int     i; /* integer                */
  146. X
  147. X/* Function:
  148. X *    Convert i to a right-justified string, padded on the left with '-'
  149. X *    characters to exactly 4 positions plus a NUL terminator.
  150. X * Algorithm:
  151. X *    Call sprintf.  Change leading blanks to '-'.
  152. X * Notes:
  153. X *    1) s must point to a buffer of at least 5 bytes.  Overflow is not
  154. X *       checked.
  155. X */
  156. X
  157. X{
  158. XSPRINTF (s, "%4d", i);
  159. Xwhile (*s == ' ')
  160. X    *s++ = '-';
  161. X}
  162. X
  163. X/* main - main function                            */
  164. X
  165. XPUBLIC int main (argc, argv)
  166. X   int    argc; /* Number of arguments.*/
  167. XR6 bStrT *argv; /* Points to array of argument strings.*/
  168. X
  169. X/* Function:
  170. X *    
  171. X * Algorithm:
  172. X *    * Initialize rb.  For each line, compute lb, then output lb and rb.
  173. X * Notes:
  174. X *    
  175. X */
  176. X
  177. X{
  178. XR1     int   i;                  /* general purpose loop variable    */
  179. XR2     char *cp;          /* for setting up rb[]            */
  180. XR3     int   nr;          /* number of rows            */
  181. XR4     int   nc;          /* number of columns            */
  182. XR5     int   nc10;          /* highest column number (divided by 10)
  183. X                   * to appear on grid.            */
  184. Xstatic char  lb[6] = "<";     /* buffer for columns 1 .. 5 of each line */
  185. Xstatic char  rb[MAX_COL - 3]; /* buffer for columns 6 .. nc of
  186. X                   * output grid.  These do not change from
  187. X                   * line to line.            */
  188. X
  189. Xif (argc != 3) usage();
  190. Xnr = mra2i (argv[1], NULBSTR, FALSE, S("Number of rows"),    MIN_ROW, MAX_ROW,
  191. X            (bStrT *) NULL);
  192. Xnc = mra2i (argv[2], NULBSTR, FALSE, S("Number of columns"), MIN_COL, MAX_COL,
  193. X            (bStrT *) NULL);
  194. Xcp = rb;
  195. X*cp++ = '-';
  196. X*cp++ = '-';
  197. X*cp++ = '-';
  198. X*cp++ = '-';
  199. X*cp++ = '1';
  200. Xnc10 = (nc - 1) / 10;
  201. Xfor (i = 2; i <= nc10; ++i)
  202. X   {
  203. X   *cp++ = '-';
  204. X   *cp++ = '-';
  205. X   *cp++ = '-';
  206. X   *cp++ = '-';
  207. X   *cp++ = '+';
  208. X   *cp++ = '-';
  209. X   decpad (cp, i);
  210. X   cp += 4;
  211. X   }
  212. Xi *= 10;
  213. Xfor (i -= 9; i != nc; ++i)
  214. X   *cp++ = ((i % 5) ? '-' : '+');
  215. X*cp++ = '>';
  216. X*cp++ = '\n';
  217. X*cp = 0;
  218. Xcp = rb;
  219. Xfor (i = 1; i <= nr; ++i)
  220. X   {
  221. X   decpad (&lb[1], i);
  222. X   FPUTS (lb, stdout);
  223. X   FPUTS (cp, stdout);
  224. X   }
  225. Xmfflush (stdout, S("Standard Output"));
  226. Xexit (SUCCESS);
  227. X
  228. X#ifdef lint
  229. Xreturn (SUCCESS);
  230. X#endif
  231. X}
  232. END_OF_FILE
  233. if test 3397 -ne `wc -c <'grid.c'`; then
  234.     echo shar: \"'grid.c'\" unpacked with wrong size!
  235. fi
  236. # end of 'grid.c'
  237. fi
  238. if test -f 'hook-add.el' -a "${1}" != "-c" ; then 
  239.   echo shar: Will not clobber existing file \"'hook-add.el'\"
  240. else
  241. echo shar: Extracting \"'hook-add.el'\" \(1596 characters\)
  242. sed "s/^X//" >'hook-add.el' <<'END_OF_FILE'
  243. X;; hook-add.el - Utility to add a function to a hook list.
  244. X;;
  245. X;; $Header: hook-add.el,v 1.1 89/08/04 17:11:46 howard Exp $
  246. X;;
  247. X;; Copyright   1989 Howard Lee Gayle
  248. X;; This file is written in the ISO 8859/1 character set.
  249. X;;
  250. X;; $Header: hook-add.el,v 1.1 89/08/04 17:11:46 howard Exp $
  251. X;;
  252. X;; This program is free software; you can redistribute it and/or modify
  253. X;; it under the terms of the GNU General Public License version 1,
  254. X;; as published by the Free Software Foundation.
  255. X;;
  256. X;; This program is distributed in the hope that it will be useful,
  257. X;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  258. X;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  259. X;; GNU General Public License for more details.
  260. X;;
  261. X;; You should have received a copy of the GNU General Public License
  262. X;; along with this program; if not, write to the Free Software
  263. X;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  264. X
  265. X(defun hook-add (s f)
  266. X   "Append to the value of HOOK-SYMBOL a new FUNCTION.
  267. XIf HOOK-SYMBOL is unbound or nil, just set it to FUNCTION.
  268. XIf HOOK-SYMBOL is bound to an atom, make a list.
  269. XIf HOOK-SYMBOL is already a list, append FUNCTION to the end.
  270. XIf FUNCTION is already on the list, do nothing.
  271. XTypically, both arguments are quoted."
  272. X   (if (boundp s)
  273. X      (let
  274. X            ((sv (eval s))) ; Value of s.
  275. X         (cond
  276. X            ((null sv) (set s f))
  277. X            ((eq sv f) sv)
  278. X            ((not (listp sv)) (set s (cons sv (list f))))
  279. X            ((memq f sv) sv)
  280. X            (t (set s (nconc sv (list f))))
  281. X         )
  282. X      )
  283. X      (set s f)
  284. X   )
  285. X)
  286. X
  287. X(provide 'hook-add)
  288. END_OF_FILE
  289. if test 1596 -ne `wc -c <'hook-add.el'`; then
  290.     echo shar: \"'hook-add.el'\" unpacked with wrong size!
  291. fi
  292. # end of 'hook-add.el'
  293. fi
  294. if test -f 'laser-dr.ps' -a "${1}" != "-c" ; then 
  295.   echo shar: Will not clobber existing file \"'laser-dr.ps'\"
  296. else
  297. echo shar: Extracting \"'laser-dr.ps'\" \(4345 characters\)
  298. sed "s/^X//" >'laser-dr.ps' <<'END_OF_FILE'
  299. X%!
  300. X% $Header: laser-dr.ps,v 1.1 89/06/28 08:44:27 howard Exp $
  301. X%% Laser Doctor, Version 1.0.0
  302. X%% Written by Jim Sullivan, January, 1989.
  303. X%% This was written out of a need to display as much information
  304. X%% about various Postscript Laserprinters onto one page.  More
  305. X%% can be added and anyone is free to modify it for their own
  306. X%% needs.
  307. X
  308. Xgsave
  309. X
  310. X%% Beginning of definitions ********************************
  311. X
  312. X/HB  {/Helvetica-Bold} def
  313. X/CBO {/Courier-BoldOblique} def
  314. X/C   {/Courier} def
  315. X/FF  {findfont} def
  316. X/SS  {scalefont setfont} def
  317. X/mt  {moveto} def
  318. X/s   {show} def
  319. X/fontname 30 string def
  320. X/getfont {pop fntnm cvs /fontname exch def} def
  321. X/fntnm 30 string def
  322. X/str 20 string def
  323. X/BOLD {CBO FF 10 SS} def
  324. X/NORMAL {C FF 10 SS} def
  325. X/cnt 0 def
  326. X/btime 0 def
  327. X/circleofbench
  328. X        { 15 15 345
  329. X            {gsave
  330. X               rotate 0 0 mt
  331. X               (Benchmark) oshow
  332. X             grestore
  333. X            } for
  334. X        } def
  335. X/oshow {true charpath stroke} def
  336. X
  337. X%% End of definitions *****************************************
  338. X
  339. XBOLD
  340. X200 756 mt
  341. X(Analysis by Doctor Laser, Version 1.0.0) s      %Print title
  342. X20 720 mt
  343. XNORMAL (This printer is a ) s
  344. XBOLD statusdict/product get str cvs s          %Gets the name of the
  345. XNORMAL ( running version ) s                   %printer from
  346. XBOLD version str cvs s                         %statusdict/product
  347. XNORMAL ( of Postscript.) s                     %and the version number
  348. X20 700 translate                               %of Postscript from the
  349. X                                               %'version' command
  350. X0 0 mt
  351. X(Available Fonts : (PaintType)FontName:Example of font) s   %Heading
  352. X0 -10 mt
  353. X(PaintType = 0\(filled\), 1\(stroked\), 2\(outlined\),) s
  354. X0 -20 mt
  355. X(            3\(mixed\), ?\(unknown\)) s
  356. X0 -30 translate
  357. X
  358. XBOLD
  359. XFontDirectory {BOLD 0 0 mt                      %Push directory of fonts and
  360. Xgetfont                                         %get the fonts one at a time.
  361. X(\() s
  362. X{fontname cvn FF /PaintType get str cvs s} stopped {%ifelse
  363. X(?) s } {} ifelse              %Get the font's PaintType and print its value,
  364. X(\)) s                         %or if it is not supplied, print a '?'.
  365. X
  366. Xfontname s                     %Print the name of the font.
  367. X
  368. Xmark
  369. Xfontname length 1 30 {(-) s} for   %Print dashes out to the font sample column.
  370. X(:) s                              %Print a colon.
  371. X
  372. X{fontname cvn FF 10 SS ( ABCDEFGH abcdefgh) s } stopped {%ifelse
  373. XNORMAL (Error implementing font) s } {} ifelse      %Show a sample of each
  374. Xcleartomark                                         %font.  If an error is
  375. Xcnt 10 add                                          %trapped, print message
  376. X/cnt exch def                                       %indicating an error
  377. X0 -10 translate} forall                             %occurred.  Use the
  378. XNORMAL                                              %variable 'cnt' to count
  379. Xcnt 30 add /cnt exch def                            %the number of fonts.
  380. X
  381. X350 cnt mt                       %Move back up the page 'cnt' points.
  382. X(Virtual Memory Status:) s       %Print the Virtual Memory Status
  383. X0 0 translate                    %using 'vmstatus'.
  384. X370 cnt 20 sub mt
  385. X(Maximum Available Bytes = ) s BOLD vmstatus str cvs s NORMAL
  386. X370 cnt 30 sub mt
  387. X(Bytes currently in use  = ) s BOLD str cvs s NORMAL
  388. X370 cnt 40 sub mt
  389. X(Level of Save Nesting   = ) s BOLD str cvs s NORMAL
  390. X350 cnt 60 sub mt
  391. X
  392. X(Cache status \(Red book p126\):) s  %Print out the cache status.
  393. Xcachestatus
  394. X370 cnt 80 sub mt NORMAL (blimit = ) s BOLD str cvs s
  395. X370 cnt 90 sub mt NORMAL (  cmax = ) s BOLD str cvs s
  396. X370 cnt 100 sub mt NORMAL ( csize = ) s BOLD str cvs s
  397. X370 cnt 110 sub mt NORMAL (  mmax = ) s BOLD str cvs s
  398. X370 cnt 120 sub mt NORMAL ( msize = ) s BOLD str cvs s
  399. X370 cnt 130 sub mt NORMAL (  bmax = ) s BOLD str cvs s
  400. X370 cnt 140 sub mt NORMAL ( bsize = ) s BOLD str cvs s
  401. X
  402. Xusertime /btime exch def                %Print a graphic (circleofbench)
  403. XHB FF 12 SS                             %and time how long it takes for
  404. X430 cnt 230 sub translate               %the printer to interpret it.
  405. X.5 setlinewidth
  406. Xcircleofbench
  407. X0 0 moveto
  408. X(Benchmark Testing) true charpath
  409. Xgsave 1 setgray fill grestore
  410. Xstroke
  411. X-40 -80 mt
  412. XNORMAL
  413. X(Time to print) s
  414. X-40 -90 mt
  415. X(the above graphic) s
  416. X-40 -100 mt
  417. X(was ) s
  418. XBOLD
  419. Xusertime btime sub 0.001 mul str cvs s  %Print out the time in seconds.
  420. XNORMAL
  421. X( seconds.) s
  422. Xgrestore
  423. Xshowpage
  424. END_OF_FILE
  425. if test 4345 -ne `wc -c <'laser-dr.ps'`; then
  426.     echo shar: \"'laser-dr.ps'\" unpacked with wrong size!
  427. fi
  428. # end of 'laser-dr.ps'
  429. fi
  430. if test -f 'letterfreq.1' -a "${1}" != "-c" ; then 
  431.   echo shar: Will not clobber existing file \"'letterfreq.1'\"
  432. else
  433. echo shar: Extracting \"'letterfreq.1'\" \(1923 characters\)
  434. sed "s/^X//" >'letterfreq.1' <<'END_OF_FILE'
  435. X.\" $Header: letterfreq.1,v 1.2 89/08/25 08:10:48 howard Exp $
  436. X.TH LETTERFREQ 1 "$Revision: 1.2 $"
  437. X.SH NAME
  438. Xletterfreq \- count frequencies of letters in text files
  439. X.SH SYNOPSIS
  440. X.B letterfreq
  441. X.I letter-group \&.\|.\|.
  442. X<
  443. X.I filenames
  444. X.SH COPYRIGHT
  445. XCopyright \(co 1989 Howard Lee Gayle
  446. X.SH DESCRIPTION
  447. X.I letterfreq
  448. Xreads from standard input a list of file names, one per line.
  449. XIt computes a letter frequency table and writes it on standard
  450. Xoutput.
  451. XThe table contains an entry for every letter with nonzero
  452. Xfrequency, sorted by frequency in descending order.
  453. XThe cumulative frequency is also written.
  454. X.SH OPTIONS
  455. XBy default,
  456. X.I letterfreq
  457. Xcounts the 26 letters of the English alphabet.
  458. XEach argument is taken as a group of forms of one additional
  459. Xletter; the first letter in the group is the output
  460. Xrepresentation and is typically the lower-case form.
  461. X.SH EXAMPLE
  462. XCount the letter frequencies of all swnet articles using the
  463. XSwedish general-purpose national version of ISO 646:
  464. X.nf
  465. X   find /usr/spool/news/swnet \-type f \-name '[0-9]*' \-print | letterfreq '{[' '}]' '|\|\e\e'
  466. X.fi
  467. X.SH "SEE ALSO"
  468. Xbytefreq (1).
  469. X.SH LICENSE
  470. XThis program is free software; you can redistribute it and/or modify
  471. Xit under the terms of the GNU General Public License version 1,
  472. Xas published by the Free Software Foundation.
  473. X.PP
  474. XThis program is distributed in the hope that it will be useful,
  475. Xbut WITHOUT ANY WARRANTY; without even the implied warranty of
  476. XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  477. XGNU General Public License for more details.
  478. X.PP
  479. XYou should have received a copy of the GNU General Public License
  480. Xalong with this program; if not, write to the Free Software
  481. XFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  482. X.SH AUTHOR
  483. XHoward Gayle,
  484. XTN/ETX/T/BG,
  485. XEricsson Telecom AB,
  486. XS-126 25 Stockholm,
  487. XSweden,
  488. Xhoward@ericsson.se,
  489. Xuunet!ericsson.se!howard,
  490. XPhone: +46 8 719 5565,
  491. XFAX: +46 8 719 9598,
  492. XTelex: 14910 ERIC S
  493. END_OF_FILE
  494. if test 1923 -ne `wc -c <'letterfreq.1'`; then
  495.     echo shar: \"'letterfreq.1'\" unpacked with wrong size!
  496. fi
  497. # end of 'letterfreq.1'
  498. fi
  499. if test -f 'letterfreq.c' -a "${1}" != "-c" ; then 
  500.   echo shar: Will not clobber existing file \"'letterfreq.c'\"
  501. else
  502. echo shar: Extracting \"'letterfreq.c'\" \(3595 characters\)
  503. sed "s/^X//" >'letterfreq.c' <<'END_OF_FILE'
  504. X/*
  505. X * letterfreq - count frequencies of letters in text
  506. X */
  507. X
  508. X#ifndef lint
  509. Xstatic char _cpyrgt[] = "Copyright 1989 Howard Lee Gayle";
  510. X#endif lint
  511. X
  512. X/*
  513. X * This program is free software; you can redistribute it and/or modify
  514. X * it under the terms of the GNU General Public License version 1,
  515. X * as published by the Free Software Foundation.
  516. X *
  517. X * This program is distributed in the hope that it will be useful,
  518. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  519. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  520. X * GNU General Public License for more details.
  521. X *
  522. X * You should have received a copy of the GNU General Public License
  523. X * along with this program; if not, write to the Free Software
  524. X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  525. X */
  526. X
  527. X#include <stdio.h>
  528. X#include <howard/port.h>
  529. X#include <howard/version.h>
  530. X#include <howard/usage.h>
  531. X
  532. XMAINVER ("@(#)$Header: letterfreq.c,v 1.4 89/08/25 07:51:30 howard Exp $");
  533. XUSAGE ("equivalence-class... < filenames");
  534. X
  535. X#include <ctype.h>
  536. X#include <howard/malf.h>
  537. X#include <howard/registers.i>
  538. X
  539. Xtypedef struct /* Data on each character.*/
  540. X   {
  541. X   double letFreq; /* Count, then frequency.*/
  542. X   rcharT letByte; /* This byte.*/
  543. X   }
  544. XletT;
  545. X
  546. X/* qsort1 - aux function for qsort */
  547. X
  548. XPRIVATE int qsort1 (lp1, lp2)
  549. XR1 letT *lp1;
  550. XR2 letT *lp2;
  551. X
  552. X/* Function:
  553. X *    
  554. X * Algorithm:
  555. X *    
  556. X * Returns:
  557. X *    
  558. X * Notes:
  559. X *    
  560. X */
  561. X{
  562. Xif (lp2->letFreq > lp1->letFreq) return (1);
  563. Xif (lp2->letFreq < lp1->letFreq) return (-1);
  564. Xreturn (0);
  565. X}
  566. X
  567. X/* main - main function                            */
  568. X
  569. XPUBLIC int main (argc, argv)
  570. X   int    argc; /* Number of arguments.*/
  571. XR6 bStrT *argv; /* Points to array of argument strings.*/
  572. X
  573. X/* Function:
  574. X *    
  575. X * Algorithm:
  576. X *    Initialize lets[].letUse.  Open each file and count each byte.
  577. X *    Sort.  Output.
  578. X * Notes:
  579. X *    1) The initialization code must be changed for each character set.
  580. X */
  581. X
  582. X{
  583. XR5     bStrT     cp;         /* For argument decoding.*/
  584. XR1     int       i = 0;      /* General purpose.*/
  585. XR2     streamT   is;         /* Input stream.*/
  586. X       unsigned  ln = 0;     /* Input line number.*/
  587. XR3     letT     *lp1;        /* Steps through lets[].*/
  588. XR4     letT     *lp2;        /* End of lets[].*/
  589. X       double    tl = 0.0;   /* Total letters.*/
  590. X       byteT     fnb[MFILE]; /* File name buffer.*/
  591. Xstatic letT      lets[256];  /* Count characters.*/
  592. Xstatic byteT     map[256];   /* What to count each byte as.*/
  593. X
  594. Xlp2 = &lets[256];
  595. Xfor (lp1 = lets; lp1 != lp2; ++lp1)
  596. X   lp1->letByte = i++;
  597. Xfor (i = 'a'; i <= 'z'; ++i)
  598. X   map[i] = i;
  599. Xfor (i = 'A'; i <= 'Z'; ++i)
  600. X   map[i] = tolower (i);
  601. X++argv;
  602. Xfor (cp = *argv++; NULBSTR != cp; cp = *argv++)
  603. X   {
  604. X   i = B(*cp);
  605. X   map[i] = i;
  606. X   for (++cp; EOS != B(*cp); ++cp)
  607. X      map[B(*cp)] = i;
  608. X   }
  609. Xwhile (NULBSTR != getlin (fnb, MFILE, stdin, S("Standard input"), &ln, 0))
  610. X   {
  611. X   is = mfopen (fnb, "r");
  612. X   while (EOF != (i = getc (is)))
  613. X      {
  614. X      i = map[i];
  615. X      if (EOS != i)
  616. X         {
  617. X         lets[i].letFreq += 1.0;
  618. X         tl += 1.0;
  619. X         }
  620. X      }
  621. X   if (ferror (is)) malf1 ("%s: Read error", fnb);
  622. X   mfclose (is, fnb);
  623. X   }
  624. XPRINTF ("Total letters: %.0f\n\n", tl);
  625. Xif (0.0 != tl)
  626. X   {
  627. X   for (lp1 = lets; lp1 != lp2; ++lp1)
  628. X      lp1->letFreq /= tl;
  629. X   qsort ((cStrT) lets, 256, sizeof (letT), qsort1);
  630. X   tl = 0.0;
  631. X   for (lp1 = lets; lp1 != lp2; ++lp1)
  632. X      {
  633. X      if (0.0 != lp1->letFreq)
  634. X         {
  635. X         tl += lp1->letFreq;
  636. X         PRINTF ("%c %8.6f %8.6f\n", lp1->letByte, lp1->letFreq, tl);
  637. X         }
  638. X      }
  639. X   }
  640. Xmfflush (stdout, S("Standard Output"));
  641. Xexit (SUCCESS);
  642. X
  643. X#ifdef lint
  644. Xreturn (SUCCESS);
  645. X#endif
  646. X}
  647. END_OF_FILE
  648. if test 3595 -ne `wc -c <'letterfreq.c'`; then
  649.     echo shar: \"'letterfreq.c'\" unpacked with wrong size!
  650. fi
  651. # end of 'letterfreq.c'
  652. fi
  653. if test -f 'prolog-beg.p4' -a "${1}" != "-c" ; then 
  654.   echo shar: Will not clobber existing file \"'prolog-beg.p4'\"
  655. else
  656. echo shar: Extracting \"'prolog-beg.p4'\" \(1243 characters\)
  657. sed "s/^X//" >'prolog-beg.p4' <<'END_OF_FILE'
  658. X% prolog-beg.p4 - Common PostScript prolog beginning for all character sets.
  659. X%
  660. X% $Header: prolog-beg.p4,v 1.1 89/08/04 17:11:48 howard Exp $
  661. X%
  662. X% Copyright   1989 Howard Lee Gayle
  663. X% This file is written in the ISO 8859/1 character set.
  664. X%
  665. X% This program is free software; you can redistribute it and/or modify
  666. X% it under the terms of the GNU General Public License version 1,
  667. X% as published by the Free Software Foundation.
  668. X%
  669. X% This program is distributed in the hope that it will be useful,
  670. X% but WITHOUT ANY WARRANTY; without even the implied warranty of
  671. X% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  672. X% GNU General Public License for more details.
  673. X%
  674. X% You should have received a copy of the GNU General Public License
  675. X% along with this program; if not, write to the Free Software
  676. X% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  677. X
  678. Xinclude(ps-abbrev.m4)
  679. X
  680. X`/'PBIND/bind        PLOAD PDEF
  681. X`/'PFNDFNT/findfont  PLOAD PDEF
  682. X`/'PPOP/pop          PLOAD PDEF
  683. X`/'PSAVE/save        PLOAD PDEF
  684. X`/'SCALEFN/scalefont PLOAD PDEF
  685. X`/'SETFONT/setfont   PLOAD PDEF
  686. X`/'PSHOW/show        PLOAD PDEF
  687. X
  688. X% Put following procedures in packed arrays
  689. X/setpacking where
  690. X   {% if
  691. X   /currpack currentpacking PDEF
  692. X   PPOP true setpacking
  693. X   } if
  694. END_OF_FILE
  695. if test 1243 -ne `wc -c <'prolog-beg.p4'`; then
  696.     echo shar: \"'prolog-beg.p4'\" unpacked with wrong size!
  697. fi
  698. # end of 'prolog-beg.p4'
  699. fi
  700. if test -f 'ps-abbrev.m4' -a "${1}" != "-c" ; then 
  701.   echo shar: Will not clobber existing file \"'ps-abbrev.m4'\"
  702. else
  703. echo shar: Extracting \"'ps-abbrev.m4'\" \(3676 characters\)
  704. sed "s/^X//" >'ps-abbrev.m4' <<'END_OF_FILE'
  705. Xdnl ps-abbrev.m4 - Macros for PostScript abbreviations.
  706. Xdnl
  707. Xdnl $Header: ps-abbrev.m4,v 1.1 89/08/04 17:11:53 howard Exp $
  708. Xdnl
  709. Xdnl Copyright   1989 Howard Lee Gayle
  710. Xdnl This file is written in the ISO 8859/1 character set.
  711. Xdnl
  712. Xdnl This program is free software; you can redistribute it and/or modify
  713. Xdnl it under the terms of the GNU General Public License version 1,
  714. Xdnl as published by the Free Software Foundation.
  715. Xdnl
  716. Xdnl This program is distributed in the hope that it will be useful,
  717. Xdnl but WITHOUT ANY WARRANTY; without even the implied warranty of
  718. Xdnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  719. Xdnl GNU General Public License for more details.
  720. Xdnl
  721. Xdnl You should have received a copy of the GNU General Public License
  722. Xdnl along with this program; if not, write to the Free Software
  723. Xdnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  724. X
  725. Xundefine(`ifelse')dnl Do not conflict with PostScript ifelse.
  726. Xundefine(`index')dnl  Do not conflict with PostScript index.
  727. Xundefine(`shift')dnl  Do not conflict with comments.
  728. X
  729. Xdefine(PHEADHT, A)dnl Header height.
  730. Xdefine(LMARGIN, a)dnl Left margin.
  731. Xdefine(PFONT,   B)dnl Body font name.
  732. Xdefine(BODYSIZ, b)dnl Body font size.
  733. Xdefine(PCOLB,   C)dnl Beginning of column.
  734. Xdefine(PCOLE,   c)dnl End of column.
  735. Xdefine(PDEL,    D)dnl Delete.
  736. Xdefine(PDEF,    d)dnl PostScript def.
  737. Xdefine(BMARGIN, E)dnl Bottom margin (YFoot).
  738. Xdefine(PPAGEWD, e)dnl Width.
  739. Xdefine(PSAVE,   F)dnl PostScript save.
  740. Xdefine(PFNDFNT, f)dnl PostScript findfont
  741. Xdefine(PPAGEHT, G)dnl Page height.
  742. Xdefine(PLNHT,   g)dnl Line number height.
  743. Xdefine(PHEADER, H)dnl Print header.
  744. Xdefine(PSHY,    h)dnl Soft hyphen.
  745. Xdefine(PPAGEN,  I)dnl Page number as number.
  746. Xdefine(PPAGES,  i)dnl Page number as string.
  747. Xdefine(SYMBFNT, J)dnl Name of symbol font.
  748. Xdefine(PLOAD,   j)dnl PostScript load command.
  749. Xdefine(FOLDIND, K)dnl FoldIndent.
  750. Xdefine(FOOTFNT, k)dnl Name of footer font
  751. Xdefine(PSLB,    L)dnl Beginning of single line.
  752. Xdefine(PSLE,    l)dnl End of single line.
  753. Xdefine(PFLB,    M)dnl Beginning of first line in folded lines.
  754. Xdefine(PFLE,    m)dnl End of first line in folded lines.
  755. Xdefine(PMLB,    N)dnl Beginning of middle line in folded lines.
  756. Xdefine(PMLE,    n)dnl End of middle lines in folded lines.
  757. Xdefine(PLLB,    O)dnl Beginning of last line in folded lines.
  758. Xdefine(PLLE,    o)dnl End of last line in folded lines.
  759. Xdefine(PPAGEB,  P)dnl Beginning of page.
  760. Xdefine(PPAGEE,  p)dnl End of page.
  761. Xdefine(HEADFNT, Q)dnl Name of header font.
  762. Xdefine(PLNFNT,  q)dnl Name of line number font.
  763. Xdefine(PROTATE, R)dnl Procedure to rotate page if necessary.
  764. Xdefine(PBIND,   r)dnl PostScript bind command.
  765. Xdefine(PSHOW,   S)dnl PostScript show.
  766. Xdefine(PNBSP,   s)dnl Non-break space.
  767. Xdefine(PCNTRL,  T)dnl Show control character.
  768. Xdefine(TMARGIN, t)dnl Top margin.
  769. Xdefine(PUNDEF,  U)dnl Undefined.
  770. Xdefine(XADJUST, u)dnl X adjustment.
  771. Xdefine(TOPSKIP, V)dnl TopSkip.
  772. Xdefine(YADJUST, v)dnl Y adjustment.
  773. Xdefine(PFIXWID, W)dnl Fixed width.
  774. Xdefine(PLNWID,  w)dnl Line number width.
  775. Xdefine(PXCOORD, X)dnl Current X coordinate.
  776. Xdefine(PDX,     x)dnl Delta X.
  777. Xdefine(PYCOORD, Y)dnl Current Y coordinate.
  778. Xdefine(LEADING, y)dnl Leading.
  779. Xdefine(PFOOTHT, Z)dnl Foot height.
  780. Xdefine(RMARGIN, z)dnl Right margin.
  781. Xdefine(PROTPOS, !)dnl Rotate +90 degrees.
  782. Xdefine(PROTNEG, &)dnl Rotate -90 degrees.
  783. Xdefine(REENCOD, *)dnl Procedure to re-encode fonts.
  784. Xdefine(PPOP,    :)dnl PostScript pop command.
  785. Xdefine(SETFONT, ;)dnl PostScript setfont command.
  786. Xdefine(SCALEFN, =)dnl PostScript scalefont command.
  787. X
  788. Xdnl The rest of these potential single-character names are reserved.
  789. Xdnl define(, ?)dnl 
  790. Xdnl define(, ^)dnl 
  791. Xdnl define(, _)dnl 
  792. Xdnl define(, |)dnl 
  793. Xdnl define(, ~)dnl 
  794. END_OF_FILE
  795. if test 3676 -ne `wc -c <'ps-abbrev.m4'`; then
  796.     echo shar: \"'ps-abbrev.m4'\" unpacked with wrong size!
  797. fi
  798. # end of 'ps-abbrev.m4'
  799. fi
  800. if test -f 'se.rc' -a "${1}" != "-c" ; then 
  801.   echo shar: Will not clobber existing file \"'se.rc'\"
  802. else
  803. echo shar: Extracting \"'se.rc'\" \(1889 characters\)
  804. sed "s/^X//" >'se.rc' <<'END_OF_FILE'
  805. X; se.rc - Character remappings for SWASCII.
  806. X;
  807. X; Copyright   1989 Howard Lee Gayle
  808. X; This file is written in the ISO 8859/1 character set.
  809. X;
  810. X; $Header: se.rc,v 1.2 89/08/29 10:07:10 howard Exp $
  811. X;
  812. X; This program is free software; you can redistribute it and/or modify
  813. X; it under the terms of the GNU General Public License version 1,
  814. X; as published by the Free Software Foundation.
  815. X;
  816. X; This program is distributed in the hope that it will be useful,
  817. X; but WITHOUT ANY WARRANTY; without even the implied warranty of
  818. X; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  819. X; GNU General Public License for more details.
  820. X;
  821. X; You should have received a copy of the GNU General Public License
  822. X; along with this program; if not, write to the Free Software
  823. X; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  824. X;
  825. X; SWASCII is an informal name for the Swedish national
  826. X; variants of ISO 646.
  827. X; $ is not converted because it almost always means US
  828. X; dollars, not general currency sign.  @ is not converted
  829. X; because it is more likely to be an at sign in a mail address
  830. X; than an E with acute accent.  Tilde is more likely to be a
  831. X; tilde in a path name (~howard/foo) than a u with umlaut.
  832. X
  833. X;Octet0.8#044# +(\244 ; $ -> general currency sign
  834. X;Octet0.8#100# +(\311 ; @ -> capital E with acute accent
  835. X Octet0.8#133# +(\304 ; [ -> capital A with diaeresis or umlaut mark.
  836. X Octet0.8#134# +(\326 ; \ -> capital O with diaeresis or umlaut mark.
  837. X Octet0.8#135# +(\305 ; ] -> capital A with ring.
  838. X;Octet0.8#136# +(\334 ; ^ -> capital U with diaeresis or umlaut mark.
  839. X Octet0.8#140# +(\351 ; ` -> small e with acute accent.
  840. X Octet0.8#173# +(\344 ; { -> small a with diaeresis or umlaut mark.
  841. X Octet0.8#174# +(\366 ; | -> small o with diaeresis or umlaut mark.
  842. X Octet0.8#175# +(\345 ; } -> small a with ring.
  843. X;Octet0.8#176# +(\374 ; ~ -> small u with diaeresis or umlaut mark.
  844. XCommandFile 8859-1
  845. END_OF_FILE
  846. if test 1889 -ne `wc -c <'se.rc'`; then
  847.     echo shar: \"'se.rc'\" unpacked with wrong size!
  848. fi
  849. # end of 'se.rc'
  850. fi
  851. if test -f 'seus.code' -a "${1}" != "-c" ; then 
  852.   echo shar: Will not clobber existing file \"'seus.code'\"
  853. else
  854. echo shar: Extracting \"'seus.code'\" \(1226 characters\)
  855. sed "s/^X//" >'seus.code' <<'END_OF_FILE'
  856. X; seus.code - trigram letter encoding for Swedish or US English
  857. X;
  858. X; Copyright 1989 Howard Lee Gayle
  859. X; This file is written in the ISO 8859/1 character set.
  860. X;
  861. X; $Header: seus.code,v 1.1 89/08/26 13:33:50 howard Exp $
  862. X;
  863. X; This program is free software; you can redistribute it and/or modify
  864. X; it under the terms of the GNU General Public License version 1,
  865. X; as published by the Free Software Foundation.
  866. X;
  867. X; This program is distributed in the hope that it will be useful,
  868. X; but WITHOUT ANY WARRANTY; without even the implied warranty of
  869. X; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  870. X; GNU General Public License for more details.
  871. X;
  872. X; You should have received a copy of the GNU General Public License
  873. X; along with this program; if not, write to the Free Software
  874. X; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  875. X
  876. X 0 'a' 'A'
  877. X 1 'b' 'B'
  878. X 2 'c' 'C'
  879. X 3 'd' 'D'
  880. X 4 'e' 'E'
  881. X 5 'f' 'F'
  882. X 6 'g' 'G'
  883. X 7 'h' 'H'
  884. X 8 'i' 'I'
  885. X 9 'j' 'J'
  886. X10 'k' 'K'
  887. X11 'l' 'L'
  888. X12 'm' 'M'
  889. X13 'n' 'N'
  890. X14 'o' 'O'
  891. X15 'p' 'P'
  892. X16 'q' 'Q'
  893. X17 'r' 'R'
  894. X18 's' 'S'
  895. X19 't' 'T'
  896. X20 'u' 'U'
  897. X21 'v' 'V'
  898. X22 'w' 'W'
  899. X23 'x' 'X'
  900. X24 'y' 'Y'
  901. X25 'z' 'Z'
  902. X26 '}' ']' 8#345# 8#305#
  903. X27 '{' '[' 8#344# 8#304#
  904. X28 '|' '\' 8#366# 8#326#
  905. X29 '`'     8#351# 8#311#
  906. END_OF_FILE
  907. if test 1226 -ne `wc -c <'seus.code'`; then
  908.     echo shar: \"'seus.code'\" unpacked with wrong size!
  909. fi
  910. # end of 'seus.code'
  911. fi
  912. if test -f 'state0.m4' -a "${1}" != "-c" ; then 
  913.   echo shar: Will not clobber existing file \"'state0.m4'\"
  914. else
  915. echo shar: Extracting \"'state0.m4'\" \(16199 characters\)
  916. sed "s/^X//" >'state0.m4' <<'END_OF_FILE'
  917. Xdnl state0.m4 - Default state 0 (ISO 8859/1)
  918. Xdnl
  919. Xdnl $Header: state0.m4,v 1.1 89/08/04 17:12:01 howard Exp $
  920. Xdnl
  921. Xdnl Copyright   1989 Howard Lee Gayle
  922. Xdnl This file is written in the ISO 8859/1 character set.
  923. Xdnl
  924. Xdnl This program is free software; you can redistribute it and/or modify
  925. Xdnl it under the terms of the GNU General Public License version 1,
  926. Xdnl as published by the Free Software Foundation.
  927. Xdnl
  928. Xdnl This program is distributed in the hope that it will be useful,
  929. Xdnl but WITHOUT ANY WARRANTY; without even the implied warranty of
  930. Xdnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  931. Xdnl GNU General Public License for more details.
  932. Xdnl
  933. Xdnl You should have received a copy of the GNU General Public License
  934. Xdnl along with this program; if not, write to the Free Software
  935. Xdnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  936. X
  937. Xinclude(ps-abbrev.m4)
  938. X
  939. XPRIVATE stateT state0 =
  940. X{
  941. X0,S("+)(@)PCNTRL"),dnl    0/ 0   0   0  0 NUL (null).
  942. X
  943. X0,S("+)(A)PCNTRL"),dnl    0/ 1   1   1  1 SOH (start of heading).
  944. X
  945. X0,S("+)(B)PCNTRL"),dnl    0/ 2   2   2  2 STX (start of text).
  946. X
  947. X0,S("+)(C)PCNTRL"),dnl    0/ 3   3   3  3 ETX (end of text).
  948. X
  949. X0,S("+)(D)PCNTRL"),dnl    0/ 4   4   4  4 EOT (end of transmission).
  950. X
  951. X0,S("+)(E)PCNTRL"),dnl    0/ 5   5   5  5 ENQ (enquiry).
  952. X
  953. X0,S("+)(F)PCNTRL"),dnl    0/ 6   6   6  6 ACK (acknowledge).
  954. X
  955. X0,S("+)(G)PCNTRL"),dnl    0/ 7   7   7  7 BEL (bell).
  956. X
  957. X0,S("+)(H)PCNTRL"),dnl    0/ 8  10   8  8 BS  (backspace).
  958. X
  959. X0,S("+t"),dnl              0/ 9  11   9  9 HT  (horizontal tabulation).
  960. X
  961. X0,S("+l"),dnl              0/10  12  10  A LF  (line feed).
  962. X
  963. X0,S("+)(K)PCNTRL"),dnl    0/11  13  11  B VT  (vertical tabulation).
  964. X
  965. X0,S("+f"),dnl             0/12  14  12  C FF  (form feed).
  966. X
  967. X0,S("+)(M)PCNTRL"),dnl    0/13  15  13  D CR  (carriage return).
  968. X
  969. X0,S("+)(N)PCNTRL"),dnl    0/14  16  14  E SO  (shift out).
  970. X
  971. X0,S("+)(O)PCNTRL"),dnl    0/15  17  15  F SI  (shift in).
  972. X
  973. X0,S("+)(P)PCNTRL"),dnl    1/ 0  20  16 10 DLE (data link escape).
  974. X
  975. X0,S("+)(Q)PCNTRL"),dnl    1/ 1  21  17 11 DC1 (device control 1).
  976. X
  977. X0,S("+)(R)PCNTRL"),dnl    1/ 2  22  18 12 DC2 (device control 2).
  978. X
  979. X0,S("+)(S)PCNTRL"),dnl    1/ 3  23  19 13 DC3 (device control 3).
  980. X
  981. X0,S("+)(T)PCNTRL"),dnl    1/ 4  24  20 14 DC4 (device control 4).
  982. X
  983. X0,S("+)(U)PCNTRL"),dnl    1/ 5  25  21 15 NAK (negative aknowledge).
  984. X
  985. X0,S("+)(V)PCNTRL"),dnl    1/ 6  26  22 16 SYN (synchronous idle).
  986. X
  987. X0,S("+)(W)PCNTRL"),dnl    1/ 7  27  23 17 ETB (end of transmission block).
  988. X
  989. X0,S("+)(X)PCNTRL"),dnl    1/ 8  30  24 18 CAN (cancel).
  990. X
  991. X0,S("+)(Y)PCNTRL"),dnl    1/ 9  31  25 19 EM  (end of medium).
  992. X
  993. X0,S("+)(Z)PCNTRL"),dnl    1/10  32  26 1A SUB (substitute character).
  994. X
  995. X0,S("+)([)PCNTRL"),dnl    1/11  33  27 1B ESC (escape).
  996. X
  997. X0,S("+)(\\\\)PCNTRL"),dnl 1/12  34  28 1C IS4/FS (information separator 4
  998. Xdnl                                               / file separator).
  999. X
  1000. X0,S("+)(])PCNTRL"),dnl    1/13  35  29 1D IS3/GS (information separator 3
  1001. Xdnl                                               / group separator).
  1002. X
  1003. X0,S("+)(^)PCNTRL"),dnl    1/14  36  30 1E IS2/RS (information separator 2
  1004. Xdnl                                               / record separator).
  1005. X
  1006. X0,S("+)(_)PCNTRL"),dnl    1/15  37  31 1F IS1/US (information separator 1
  1007. Xdnl                                               / unit separator).
  1008. X
  1009. X0,S("+( "),dnl               2/ 0  40  32 20 space.
  1010. X
  1011. X0,S("+(!"),dnl              2/ 1  41  33 21 exclamation mark.
  1012. X
  1013. X0,S("+(\""),dnl              2/ 2  42  34 22 quotation mark.
  1014. X
  1015. X0,S("+(`#'"),dnl         2/ 3  43  35 23 number sign.
  1016. X
  1017. X0,S("+($"),dnl              2/ 4  44  36 24 dollar sign.
  1018. X
  1019. X0,S("+(%"),dnl              2/ 5  45  37 25 percent sign.
  1020. X
  1021. X0,S("+(&"),dnl              2/ 6  46  38 26 ampersand.
  1022. X
  1023. Xchangequote({,})dnl
  1024. X0,S("+('"),dnl              2/ 7  47  39 27 apostrophe.
  1025. Xchangequote(`,')dnl
  1026. X
  1027. X0,S("+(\\("),dnl      2/ 8  50  40 28 left parenthesis.
  1028. X
  1029. X0,S("+(\\)"),dnl      2/ 9  51  41 29 right parenthesis.
  1030. X
  1031. X0,S("+(*"),dnl              2/10  52  42 2A asterisk.
  1032. X
  1033. X0,S("+(+e"),dnl              2/11  53  43 2B plus sign.
  1034. X
  1035. X0,S("+(,"),dnl              2/12  54  44 2C comma.
  1036. X
  1037. X0,S("+(-"),dnl              2/13  55  45 2D hyphen, minus sign.
  1038. X
  1039. X0,S("+(."),dnl              2/14  56  46 2E full stop.
  1040. X
  1041. X0,S("+(/"),dnl              2/15  57  47 2F solidus.
  1042. X
  1043. X0,S("+(0"),dnl              3/ 0  60  48 30 digit zero.
  1044. X
  1045. X0,S("+(1"),dnl              3/ 1  61  49 31 digit one.
  1046. X
  1047. X0,S("+(2"),dnl              3/ 2  62  50 32 digit two.
  1048. X
  1049. X0,S("+(3"),dnl              3/ 3  63  51 33 digit three.
  1050. X
  1051. X0,S("+(4"),dnl              3/ 4  64  52 34 digit four.
  1052. X
  1053. X0,S("+(5"),dnl              3/ 5  65  53 35 digit five.
  1054. X
  1055. X0,S("+(6"),dnl              3/ 6  66  54 36 digit six.
  1056. X
  1057. X0,S("+(7"),dnl              3/ 7  67  55 37 digit seven.
  1058. X
  1059. X0,S("+(8"),dnl              3/ 8  70  56 38 digit eight.
  1060. X
  1061. X0,S("+(9"),dnl              3/ 9  71  57 39 digit nine.
  1062. X
  1063. X0,S("+(:"),dnl              3/10  72  58 3A colon.
  1064. X
  1065. X0,S("+(;"),dnl              3/11  73  59 3B semicolon.
  1066. X
  1067. X0,S("+(<"),dnl              3/12  74  60 3C less-than sign.
  1068. X
  1069. X0,S("+(="),dnl              3/13  75  61 3D equals sign.
  1070. X
  1071. X0,S("+(>"),dnl              3/14  76  62 3E greater-than sign.
  1072. X
  1073. X0,S("+(?"),dnl              3/15  77  63 3F question mark.
  1074. X
  1075. X0,S("+(@"),dnl              4/ 0 100  64 40 commercial at.
  1076. X
  1077. X0,S("+(A"),dnl              4/ 1 101  65 41 A.
  1078. X
  1079. X0,S("+(B"),dnl              4/ 2 102  66 42 B.
  1080. X
  1081. X0,S("+(C"),dnl              4/ 3 103  67 43 C.
  1082. X
  1083. X0,S("+(D"),dnl              4/ 4 104  68 44 D.
  1084. X
  1085. X0,S("+(E"),dnl              4/ 5 105  69 45 E.
  1086. X
  1087. X0,S("+(F"),dnl              4/ 6 106  70 46 F.
  1088. X
  1089. X0,S("+(G"),dnl              4/ 7 107  71 47 G.
  1090. X
  1091. X0,S("+(H"),dnl              4/ 8 110  72 48 H.
  1092. X
  1093. X0,S("+(I"),dnl              4/ 9 111  73 49 I.
  1094. X
  1095. X0,S("+(J"),dnl              4/10 112  74 4A J.
  1096. X
  1097. X0,S("+(K"),dnl              4/11 113  75 4B K.
  1098. X
  1099. X0,S("+(L"),dnl              4/12 114  76 4C L.
  1100. X
  1101. X0,S("+(M"),dnl              4/13 115  77 4D M.
  1102. X
  1103. X0,S("+(N"),dnl              4/14 116  78 4E N.
  1104. X
  1105. X0,S("+(O"),dnl              4/15 117  79 4F O.
  1106. X
  1107. X0,S("+(P"),dnl              5/ 0 120  80 50 P.
  1108. X
  1109. X0,S("+(Q"),dnl              5/ 1 121  81 51 Q.
  1110. X
  1111. X0,S("+(R"),dnl              5/ 2 122  82 52 R.
  1112. X
  1113. X0,S("+(S"),dnl              5/ 3 123  83 53 S.
  1114. X
  1115. X0,S("+(T"),dnl              5/ 4 124  84 54 T.
  1116. X
  1117. X0,S("+(U"),dnl              5/ 5 125  85 55 U.
  1118. X
  1119. X0,S("+(V"),dnl              5/ 6 126  86 56 V.
  1120. X
  1121. X0,S("+(W"),dnl              5/ 7 127  87 57 W.
  1122. X
  1123. X0,S("+(X"),dnl              5/ 8 130  88 58 X.
  1124. X
  1125. X0,S("+(Y"),dnl              5/ 9 131  89 59 Y.
  1126. X
  1127. X0,S("+(Z"),dnl              5/10 132  90 5A Z.
  1128. X
  1129. X0,S("+(["),dnl              5/11 133  91 5B left square bracket.
  1130. X
  1131. X0,S("+(\\\\"),dnl      5/12 134  92 5C reverse solidus.
  1132. X
  1133. X0,S("+(]"),dnl              5/13 135  93 5D right square bracket.
  1134. X
  1135. X0,S("+(^"),dnl              5/14 136  94 5E circumflex accent.
  1136. X
  1137. X0,S("+(_"),dnl              5/15 137  95 5F low line, underline.
  1138. X
  1139. Xchangequote({,})dnl
  1140. X0,S("+(`"),dnl              6/ 0 140  96 60 grave accent.
  1141. Xchangequote(`,')dnl
  1142. X
  1143. X0,S("+(a"),dnl              6/ 1 141  97 61 a.
  1144. X
  1145. X0,S("+(b"),dnl              6/ 2 142  98 62 b.
  1146. X
  1147. X0,S("+(c"),dnl              6/ 3 143  99 63 c.
  1148. X
  1149. X0,S("+(d"),dnl              6/ 4 144 100 64 d.
  1150. X
  1151. X0,S("+(e"),dnl              6/ 5 145 101 65 e.
  1152. X
  1153. X0,S("+(f"),dnl              6/ 6 146 102 66 f.
  1154. X
  1155. X0,S("+(g"),dnl              6/ 7 147 103 67 g.
  1156. X
  1157. X0,S("+(h"),dnl              6/ 8 150 104 68 h.
  1158. X
  1159. X0,S("+(i"),dnl              6/ 9 151 105 69 i.
  1160. X
  1161. X0,S("+(j"),dnl              6/10 152 106 6A j.
  1162. X
  1163. X0,S("+(k"),dnl              6/11 153 107 6B k.
  1164. X
  1165. X0,S("+(l"),dnl              6/12 154 108 6C l.
  1166. X
  1167. X0,S("+(m"),dnl              6/13 155 109 6D m.
  1168. X
  1169. X0,S("+(n"),dnl              6/14 156 110 6E n.
  1170. X
  1171. X0,S("+(o"),dnl              6/15 157 111 6F o.
  1172. X
  1173. X0,S("+(p"),dnl              7/ 0 160 112 70 p.
  1174. X
  1175. X0,S("+(q"),dnl              7/ 1 161 113 71 q.
  1176. X
  1177. X0,S("+(r"),dnl              7/ 2 162 114 72 r.
  1178. X
  1179. X0,S("+(s"),dnl              7/ 3 163 115 73 s.
  1180. X
  1181. X0,S("+(t"),dnl              7/ 4 164 116 74 t.
  1182. X
  1183. X0,S("+(u"),dnl              7/ 5 165 117 75 u.
  1184. X
  1185. X0,S("+(v"),dnl              7/ 6 166 118 76 v.
  1186. X
  1187. X0,S("+(w"),dnl              7/ 7 167 119 77 w.
  1188. X
  1189. X0,S("+(x"),dnl              7/ 8 170 120 78 x.
  1190. X
  1191. X0,S("+(y"),dnl              7/ 9 171 121 79 y.
  1192. X
  1193. X0,S("+(z"),dnl              7/10 172 122 7A z.
  1194. X
  1195. X0,S("+({"),dnl              7/11 173 123 7B left curly bracket.
  1196. X
  1197. X0,S("+(|"),dnl              7/12 174 124 7C vertical line.
  1198. X
  1199. X0,S("+(}"),dnl              7/13 175 125 7D right curly bracket.
  1200. X
  1201. X0,S("+(~"),dnl              7/14 176 126 7E tilde.
  1202. X
  1203. X0,S("+)PDEL"),dnl      7/15 177 127 7F DEL (delete).
  1204. X
  1205. X0, NULBSTR,dnl            8/ 0 200 128 80.
  1206. X
  1207. X0, NULBSTR,dnl            8/ 1 201 129 81.
  1208. X
  1209. X0, NULBSTR,dnl            8/ 2 202 130 82.
  1210. X
  1211. X0, NULBSTR,dnl            8/ 3 203 131 83.
  1212. X
  1213. X0, NULBSTR,dnl            8/ 4 204 132 84.
  1214. X
  1215. X0, NULBSTR,dnl            8/ 5 205 133 85.
  1216. X
  1217. X0, NULBSTR,dnl            8/ 6 206 134 86.
  1218. X
  1219. X0, NULBSTR,dnl            8/ 7 207 135 87.
  1220. X
  1221. X0, NULBSTR,dnl            8/ 8 210 136 88.
  1222. X
  1223. X0, NULBSTR,dnl            8/ 9 211 137 89.
  1224. X
  1225. X0, NULBSTR,dnl            8/10 212 138 8A.
  1226. X
  1227. X0, NULBSTR,dnl            8/11 213 139 8B.
  1228. X
  1229. X0, NULBSTR,dnl            8/12 214 140 8C.
  1230. X
  1231. X0, NULBSTR,dnl            8/13 215 141 8D.
  1232. X
  1233. X0, NULBSTR,dnl            8/14 216 142 8E.
  1234. X
  1235. X0, NULBSTR,dnl            8/15 217 143 8F.
  1236. X
  1237. X0, NULBSTR,dnl            9/ 0 220 144 90.
  1238. X
  1239. X0, NULBSTR,dnl            9/ 1 221 145 91.
  1240. X
  1241. X0, NULBSTR,dnl            9/ 2 222 146 92.
  1242. X
  1243. X0, NULBSTR,dnl            9/ 3 223 147 93.
  1244. X
  1245. X0, NULBSTR,dnl            9/ 4 224 148 94.
  1246. X
  1247. X0, NULBSTR,dnl            9/ 5 225 149 95.
  1248. X
  1249. X0, NULBSTR,dnl            9/ 6 226 150 96.
  1250. X
  1251. X0, NULBSTR,dnl            9/ 7 227 151 97.
  1252. X
  1253. X0, NULBSTR,dnl            9/ 8 230 152 98.
  1254. X
  1255. X0, NULBSTR,dnl            9/ 9 231 153 99.
  1256. X
  1257. X0, NULBSTR,dnl            9/10 232 154 9A.
  1258. X
  1259. X0, NULBSTR,dnl            9/11 233 155 9B.
  1260. X
  1261. X0, NULBSTR,dnl            9/12 234 156 9C.
  1262. X
  1263. X0, NULBSTR,dnl            9/13 235 157 9D.
  1264. X
  1265. X0, NULBSTR,dnl            9/14 236 158 9E.
  1266. X
  1267. X0, NULBSTR,dnl            9/15 237 159 9F.
  1268. X
  1269. X0,S("+)PNBSP"),dnl       10/ 0 240 160 A0 NBSP (no-break space).
  1270. X
  1271. X0,S("+(\\241"),dnl     10/ 1 241 161 A1 inverted exclamation mark.
  1272. X
  1273. X0,S("+(\\242"),dnl     10/ 2 242 162 A2 cent sign.
  1274. X
  1275. X0,S("+(\\243"),dnl     10/ 3 243 163 A3 pound sign.
  1276. X
  1277. X0,S("+(\\244"),dnl     10/ 4 244 164 A4 general currency sign.
  1278. X
  1279. X0,S("+(\\245"),dnl     10/ 5 245 165 A5 yen sign.
  1280. X
  1281. X0,S("+(\\246"),dnl     10/ 6 246 166 A6 broken vertical line.
  1282. X
  1283. X0,S("+(\\247"),dnl     10/ 7 247 167 A7 section sign.
  1284. X
  1285. X0,S("+(\\250"),dnl     10/ 8 250 168 A8 diaeresis.
  1286. X
  1287. X0,S("+(\\251"),dnl     10/ 9 251 169 A9 copyright sign.
  1288. X
  1289. X0,S("+(\\252"),dnl     10/10 252 170 AA ordinal indicator, feminine.
  1290. X
  1291. X0,S("+(\\253"),dnl     10/11 253 171 AB angle quotation mark left.
  1292. X
  1293. X0,S("+(\\254"),dnl     10/12 254 172 AC not sign.
  1294. X
  1295. X0,S("+)PSHY"),dnl        10/13 255 173 AD soft hyphen.
  1296. X
  1297. X0,S("+(\\256"),dnl     10/14 256 174 AE registered sign.
  1298. X
  1299. X0,S("+(\\257"),dnl     10/15 257 175 AF macron.
  1300. X
  1301. X0,S("+(\\260"),dnl     11/ 0 260 176 B0 degree sign.
  1302. X
  1303. X0,S("+(\\261"),dnl     11/ 1 261 177 B1 plus or minus sign.
  1304. X
  1305. X0,S("+(\\262"),dnl     11/ 2 262 178 B2 superscript two.
  1306. X
  1307. X0,S("+(\\263"),dnl     11/ 3 263 179 B3 superscript three.
  1308. X
  1309. X0,S("+(\\264"),dnl     11/ 4 264 180 B4 acute accent.
  1310. X
  1311. X0,S("+(\\265"),dnl     11/ 5 265 181 B5 micro sign.
  1312. X
  1313. X0,S("+(\\266"),dnl     11/ 6 266 182 B6 pilcrow.
  1314. X
  1315. X0,S("+(\\267"),dnl     11/ 7 267 183 B7 middle dot.
  1316. X
  1317. X0,S("+(\\270"),dnl     11/ 8 270 184 B8 cedilla.
  1318. X
  1319. X0,S("+(\\271"),dnl     11/ 9 271 185 B9 superscript one.
  1320. X
  1321. X0,S("+(\\272"),dnl     11/10 272 186 BA ordinal indicator, masculine.
  1322. X
  1323. X0,S("+(\\273"),dnl     11/11 273 187 BB angle quotation mark right.
  1324. X
  1325. X0,S("+(\\274"),dnl     11/12 274 188 BC fraction one-quarter.
  1326. X
  1327. X0,S("+(\\275"),dnl     11/13 275 189 BD fraction one-half.
  1328. X
  1329. X0,S("+(\\276"),dnl     11/14 276 190 BE fraction three-quarters.
  1330. X
  1331. X0,S("+(\\277"),dnl     11/15 277 191 BF inverted question mark.
  1332. X
  1333. X0,S("+(\\300"),dnl     12/ 0 300 192 C0 capital A with grave accent.
  1334. X
  1335. X0,S("+(\\301"),dnl     12/ 1 301 193 C1 capital A with acute accent.
  1336. X
  1337. X0,S("+(\\302"),dnl     12/ 2 302 194 C2 capital A with circumflex accent.
  1338. X
  1339. X0,S("+(\\303"),dnl     12/ 3 303 195 C3 capital A with tilde.
  1340. X
  1341. X0,S("+(\\304"),dnl     12/ 4 304 196 C4 capital A with diaeresis or
  1342. Xdnl                                       umlaut mark.
  1343. X
  1344. X0,S("+(\\305"),dnl     12/ 5 305 197 C5 capital A with ring.
  1345. X
  1346. X0,S("+(\\306"),dnl     12/ 6 306 198 C6 capital AE diphthong.
  1347. X
  1348. X0,S("+(\\307"),dnl     12/ 7 307 199 C7 capital C with cedilla.
  1349. X
  1350. X0,S("+(\\310"),dnl     12/ 8 310 200 C8 capital E with grave accent.
  1351. X
  1352. X0,S("+(\\311"),dnl     12/ 9 311 201 C9 capital E with acute accent.
  1353. X
  1354. X0,S("+(\\312"),dnl     12/10 312 202 CA capital E with circumflex accent.
  1355. X
  1356. X0,S("+(\\313"),dnl     12/11 313 203 CB capital E with diaeresis or
  1357. Xdnl                                       umlaut mark.
  1358. X
  1359. X0,S("+(\\314"),dnl     12/12 314 204 CC capital I with grave accent.
  1360. X
  1361. X0,S("+(\\315"),dnl     12/13 315 205 CD capital I with acute accent.
  1362. X
  1363. X0,S("+(\\316"),dnl     12/14 316 206 CE capital I with circumflex accent.
  1364. X
  1365. X0,S("+(\\317"),dnl     12/15 317 207 CF capital I with diaeresis or
  1366. Xdnl                                       umlaut mark.
  1367. X
  1368. X0,S("+(\\320"),dnl     13/ 0 320 208 D0 capital D with stroke,
  1369. Xdnl                                       Icelandic eth.
  1370. X
  1371. X0,S("+(\\321"),dnl     13/ 1 321 209 D1 capital N with tilde.
  1372. X
  1373. X0,S("+(\\322"),dnl     13/ 2 322 210 D2 capital O with grave accent.
  1374. X
  1375. X0,S("+(\\323"),dnl     13/ 3 323 211 D3 capital O with acute accent.
  1376. X
  1377. X0,S("+(\\324"),dnl     13/ 4 324 212 D4 capital O with circumflex accent.
  1378. X
  1379. X0,S("+(\\325"),dnl     13/ 5 325 213 D5 capital O with tilde.
  1380. X
  1381. X0,S("+(\\326"),dnl       13/ 6 326 214 D6 capital O with diaeresis or
  1382. Xdnl                                       umlaut mark.
  1383. X
  1384. X0,S("+(\\327"),dnl     13/ 7 327 215 D7 multiplication sign.
  1385. X
  1386. X0,S("+(\\330"),dnl     13/ 8 330 216 D8 capital O with slash.
  1387. X
  1388. X0,S("+(\\331"),dnl     13/ 9 331 217 D9 capital U with grave accent.
  1389. X
  1390. X0,S("+(\\332"),dnl     13/10 332 218 DA capital U with acute accent.
  1391. X
  1392. X0,S("+(\\333"),dnl     13/11 333 219 DB capital U with circumflex accent.
  1393. X
  1394. X0,S("+(\\334"),dnl     13/12 334 220 DC capital U with diaeresis or
  1395. Xdnl                                       umlaut mark.
  1396. X
  1397. X0,S("+(\\335"),dnl      13/13 335 221 DD capital Y with acute accent.
  1398. X
  1399. X0,S("+(\\336"),dnl     13/14 336 222 DE capital thorn, Icelandic.
  1400. X
  1401. X0,S("+(\\337"),dnl     13/15 337 223 DF small sharp s, German.
  1402. X
  1403. X0,S("+(\\340"),dnl     14/ 0 340 224 E0 small a with grave accent.
  1404. X
  1405. X0,S("+(\\341"),dnl     14/ 1 341 225 E1 small a with acute accent.
  1406. X
  1407. X0,S("+(\\342"),dnl     14/ 2 342 226 E2 small a with circumflex accent.
  1408. X
  1409. X0,S("+(\\343"),dnl     14/ 3 343 227 E3 small a with tilde.
  1410. X
  1411. X0,S("+(\\344"),dnl     14/ 4 344 228 E4 small a with diaeresis or
  1412. Xdnl                                       umlaut mark.
  1413. X
  1414. X0,S("+(\\345"),dnl     14/ 5 345 229 E5 small a with ring.
  1415. X
  1416. X0,S("+(\\346"),dnl     14/ 6 346 230 E6 small ae diphthong.
  1417. X
  1418. X0,S("+(\\347"),dnl     14/ 7 347 231 E7 small c with cedilla.
  1419. X
  1420. X0,S("+(\\350"),dnl     14/ 8 350 232 E8 small e with grave accent.
  1421. X
  1422. X0,S("+(\\351"),dnl     14/ 9 351 233 E9 small e with acute accent.
  1423. X
  1424. X0,S("+(\\352"),dnl     14/10 352 234 EA small e with circumflex accent.
  1425. X
  1426. X0,S("+(\\353"),dnl     14/11 353 235 EB small e with diaeresis or
  1427. Xdnl                                       umlaut mark.
  1428. X
  1429. X0,S("+(\\354"),dnl     14/12 354 236 EC small i with grave accent.
  1430. X
  1431. X0,S("+(\\355"),dnl     14/13 355 237 ED small i with acute accent.
  1432. X
  1433. X0,S("+(\\356"),dnl     14/14 356 238 EE small i with circumflex accent.
  1434. X
  1435. X0,S("+(\\357"),dnl     14/15 357 239 EF small i with diaeresis or
  1436. Xdnl                                       umlaut mark.
  1437. X
  1438. X0,S("+(\\360"),dnl     15/ 0 360 240 F0 small d with stroke, Icelandic eth.
  1439. X
  1440. X0,S("+(\\361"),dnl     15/ 1 361 241 F1 small n with tilde.
  1441. X
  1442. X0,S("+(\\362"),dnl     15/ 2 362 242 F2 small o with grave accent.
  1443. X
  1444. X0,S("+(\\363"),dnl     15/ 3 363 243 F3 small o with acute accent.
  1445. X
  1446. X0,S("+(\\364"),dnl     15/ 4 364 244 F4 small o with circumflex accent.
  1447. X
  1448. X0,S("+(\\365"),dnl     15/ 5 365 245 F5 small o with tilde.
  1449. X
  1450. X0,S("+(\\366"),dnl     15/ 6 366 246 F6 small o with diaeresis or
  1451. Xdnl                                       umlaut mark.
  1452. X
  1453. X0,S("+(\\367"),dnl     15/ 7 367 247 F7 division sign.
  1454. X
  1455. X0,S("+(\\370"),dnl     15/ 8 370 248 F8 small o with slash.
  1456. X
  1457. X0,S("+(\\371"),dnl     15/ 9 371 249 F9 small u with grave accent.
  1458. X
  1459. X0,S("+(\\372"),dnl     15/10 372 250 FA small u with acute accent.
  1460. X
  1461. X0,S("+(\\373"),dnl     15/11 373 251 FB small u with circumflex accent.
  1462. X
  1463. X0,S("+(\\374"),dnl     15/12 374 252 FC small u with diaeresis or
  1464. Xdnl                                       umlaut mark.
  1465. X
  1466. X0,S("+(\\375"),dnl     15/13 375 253 FD small y with acute accent.
  1467. X
  1468. X0,S("+(\\376"),dnl     15/14 376 254 FE small thorn, Icelandic.
  1469. X
  1470. X0,S("+(\\377"),dnl     15/15 377 255 FF small y with diaeresis or
  1471. Xdnl                                       umlaut mark.
  1472. X
  1473. X};
  1474. X
  1475. XstateT *states[1 + MSTATE] = {(stateT *) state0};
  1476. END_OF_FILE
  1477. if test 16199 -ne `wc -c <'state0.m4'`; then
  1478.     echo shar: \"'state0.m4'\" unpacked with wrong size!
  1479. fi
  1480. # end of 'state0.m4'
  1481. fi
  1482. echo shar: End of archive 8 \(of 14\).
  1483. cp /dev/null ark8isdone
  1484. MISSING=""
  1485. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ; do
  1486.     if test ! -f ark${I}isdone ; then
  1487.     MISSING="${MISSING} ${I}"
  1488.     fi
  1489. done
  1490. if test "${MISSING}" = "" ; then
  1491.     echo You have unpacked all 14 archives.
  1492.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1493. else
  1494.     echo You still need to unpack the following archives:
  1495.     echo "        " ${MISSING}
  1496. fi
  1497. ##  End of shell archive.
  1498. exit 0
  1499.  
  1500.